<?php

/*
 * Tipo_usuario DAL.
 * @Autor: Inicial.cl.
 */

class Tipo_usuarioDAL {

    //METODO PARA GRABAR TIPO_USUARIO.
    public static function grabar($oTipo_usuario) {
        try {
            $arr = array(
                "{#NOMBRE}" => $oTipo_usuario->getNombre()
            );
            $query = Util::getQuery($arr, Tipo_usuarioSQL::$GRABAR_TIPO_USUARIO);
            $arrDatos = Bd::exec($query);

            $id = Bd::$IDENTITY; //Retorno id insertado
            return $id;
        } catch (Excepcion $e) {
            throw new Exception($e->getMessage());
        }
    }

    //METODO PARA EDITAR TIPO_USUARIO.
    public static function editar($oTipo_usuario) {
        try {
            $arr = array(
                "{#ID}" => $oTipo_usuario->getId(),
                "{#NOMBRE}" => $oTipo_usuario->getNombre()
            );
            $query = Util::getQuery($arr, Tipo_usuarioSQL::$EDITAR_TIPO_USUARIO);
            $arrDatos = Bd::exec($query);
        } catch (Excepcion $e) {
            throw new Exception($e->getMessage());
        }
    }

    //METODO PARA LISTAR TIPO_USUARIO.
    public static function listar($oTipo_usuario) {
        try {
            $arr = array(
                "{#ID}" => $oTipo_usuario->getId(),
                "{#NOMBRE}" => $oTipo_usuario->getNombre()
            );
            $query = Util::getQuery($arr, Tipo_usuarioSQL::$LISTAR_TIPO_USUARIO);
            $arrDatos = Bd::exec($query);
            $arrTipo_usuario = array();

            if (count($arrDatos) > 0) {
                foreach ($arrDatos as $row) {
                    $oTipo_usuario = new Tipo_usuario();

                    $oTipo_usuario->setId($row["id"]);
                    $oTipo_usuario->setNombre($row["nombre"]);

                    $arrTipo_usuario[] = $oTipo_usuario;
                }
            }

            return $arrTipo_usuario;
        } catch (Excepcion $e) {
            throw new Exception($e->getMessage());
        }
    }

    //METODO PARA OBTENER POR ID TIPO_USUARIO.
    public static function obtenerPorId($id) {
        try {
            $arr = array(
                "{#ID}" => $id
            );
            $query = Util::getQuery($arr, Tipo_usuarioSQL::$OBTENER_TIPO_USUARIO_POR_ID);
            $arrDatos = Bd::exec($query);

            if (count($arrDatos) > 0) {
                $oTipo_usuario = new Tipo_usuario();

                foreach ($arrDatos as $row) {
                    $oTipo_usuario->setId($row["id"]);
                    $oTipo_usuario->setNombre($row["nombre"]);
                }
                return $oTipo_usuario;
            }
        } catch (Excepcion $e) {
            throw new Exception($e->getMessage());
        }
    }

    //METODO PARA ELIMINAR TIPO_USUARIO.
    public static function eliminar($id) {
        try {
            $arr = array("{#ID}" => $id);
            $query = Util::getQuery($arr, Tipo_usuarioSQL::$ELIMINAR_TIPO_USUARIO);
            $arrDatos = Bd::exec($query);
        } catch (Excepcion $e) {
            throw new Exception($e->getMessage());
        }
    }

}

?>